pdf <- function(x) {exp(-x)}
curve(pdf, from = 0, to=100, n=1000)
pdf <- function(x) {exp(-x)}
curve(pdf, from = 0, to=10, n=1000)
pdf <- function(x) {exp(-x)}
curve(pdf, from = 0, to=0.01, n=1000)
pdf <- function(x) {exp(-x)}
curve(pdf, from = 0, to=10, n=1000)
pdf <- function(x) {exp(-x)}
curve(pdf, from = 0, to=6, n=1000)
cdf <- function(x) {-exp(-x)}
curve(cdf, from = 0, to=6, n=1000)
cdf <- function(x) {-exp(-x) + 1}
curve(cdf, from = 0, to=6, n=1000)
pdf <- function(x) {exp(-x)}
curve(pdf, from = 0, to=6, n=1000)
pdf2 <- function(x) {(2/3)x^(-1/3)}  # for 0 <= x <= 1
curve(pdf1, from = 0, to=1, n=1000)
pdf2 <- function(x) {(2/3)x^(-1/3)}  # for 0 <= x <= 1
curve(pdf2, from = 0, to=1, n=1000)
pdf2 <- function(x) {(2/3)*(x^(-1/3))}  # for 0 <= x <= 1
curve(pdf2, from = 0, to=1, n=1000)
cdf2 <- function(x) {x^(2/3)}
curve(cdf2, from = 0, to=1, n=1000)
pdf2 <- function(x) {(2/3)*(x^(-1/3))}  # for 0 <= x <= 1
curve(pdf2, from = 0, to=1, n=1000)
cdf2 <- function(x) {x^(2/3)}
curve(cdf2, from = 0, to=1, n=1000)
pi
npdf <-function(x, mu, sigma) {
((2*pi*sigma^2)^(1/2))exp(-((x-mu)^2)/(2*sigma^2))
}
npdf <-function(x, mu, sigma) {
((2*3.14159*sigma^2)^(1/2))exp(-((x-mu)^2)/(2*sigma^2))
}
npdf <-function(x, mu, sigma) {
((2*pi*sigma^2)^(1/2))*exp(-((x-mu)^2)/(2*sigma^2))
}
npdf <-function(x) {
((2*pi*sigma^2)^(1/2))*exp(-((x-mu)^2)/(2*sigma^2))
}
mu<-0
sigma<-1
curve(npdf, from = -3, to=3, n=1000)
dnorm(0)
x<-(seq(-3,3,length.out=1000))
y<-(seq(0,1,length.out=1000))
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000)), type="l", lwd=3, col="steelblue")
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000)), type="2", lwd=1, col="steelblue")
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000)), type="l", lwd=1, lty=1, col="steelblue")
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=1, sd=0.3), type="l", lwd=1, lty=2, col="maroon")
# plot normal curves on one figure
x<-(seq(-3,3,length.out=1000))
y<-(seq(0,1.4,length.out=1000))
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000)), type="l", lwd=1, lty=1, col="steelblue")
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=1, sd=0.3), type="l", lwd=1, lty=2, col="maroon")
x<-(seq(-3,3,length.out=1000))
y<-(seq(0,1.4,length.out=1000))
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0, sd=10), type="l", lwd=1, lty=1, col="steelblue")
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=1, sd=0.1), type="l", lwd=1, lty=2, col="maroon")
x<-(seq(-3,3,length.out=1000))
y<-(seq(0,1.4,length.out=1000))
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0, sd=2), type="l", lwd=1, lty=1, col="steelblue")
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=1, sd=0.3), type="l", lwd=1, lty=2, col="maroon")
x<-(seq(-3,3,length.out=1000))
y<-(seq(0,1.4,length.out=1000))
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0.5, sd=0.3), type="l", lwd=1, lty=1, col="maroon")
d<-density(dnorm(seq(-3,3,length.out=1000), kernel="gaussian"))
polygon(c(0, rev(d$x[d$x<0])), c(0, rev(d$y[d$x<0])), col="maroon", border=NA)
d<-density(dnorm(seq(-3,3,length.out=1000))) #, kernel="gaussian"))
polygon(c(0, rev(d$x[d$x<0])), c(0, rev(d$y[d$x<0])), col="maroon", border=NA)
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0.5, sd=0.3), type="l", lwd=1, lty=1, col="maroon")
cord.x <- c(-3,seq(-3,0,0.01),0)
cord.y <- c(0,dnorm(seq(-3,0,0.01)),0)
polygon(cord.x,cord.y,col="maroon")
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0.5, sd=0.3), type="l", lwd=1, lty=1, col="maroon")
cord.x <- c(-3,seq(-3,0,0.01),0)
cord.y <- c(0,dnorm(seq(-3,0,0.01), mean=0.5, sd=0.3),0)
polygon(cord.x,cord.y,col="maroon")
# prior-posterior example
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0, sd=2), type="l", lwd=1, lty=2, col="steelblue")
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=1, sd=0.3), type="l", lwd=1, lty=1, col="maroon")
x<-(seq(-3,3,length.out=1000))
y<-(seq(0,1.4,length.out=1000))
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0.5, sd=0.3), type="l", lwd=1, lty=1, col="maroon")
cord.x <- c(-3,seq(-3,0,0.01),0)
cord.y <- c(0,dnorm(seq(-3,0,0.01), mean=0.5, sd=0.3),0)
polygon(cord.x,cord.y,col="maroon")
# prior-posterior example
plot(x,y, type = "n", main=paste("Prior and Posterior Distributions"), xlab=("θ"), ylab=("density"))
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=0, sd=2), type="l", lwd=1, lty=2, col="steelblue")
lines((seq(-3,3,length.out=1000)), dnorm(seq(-3,3,length.out=1000), mean=1, sd=0.3), type="l", lwd=1, lty=1, col="maroon")
library(mvtnorm)
library(arm)
library(BRugs)
library(R2OpenBUGS)
library(coda)
library(car)
library(foreign)
# Change this to your working directory.  Note this path makes Dropbox work at least on a windows machine
setwd("~/../Dropbox/UCR/research/bayes/funglee/persuasion/OBOE/Replication/ResultsInPaper/Tutorial")
dataset<-read.dta(file.choose()) # read in a Stata file "tutorial_data.dta"
# create the matrix of group assignments
TableAdj=matrix(data=0, nrow=length(dataset$groupid), ncol=length(dataset$groupid))
for (i in 1:length(dataset$groupid)) {
for (j in 1:length(dataset$groupid)) {
if (i!=j) {
if (dataset$groupid[i]==dataset$groupid[j]) {
TableAdj[i,j]<-1
}}}}
# Create Vector of group mappings to read into Congdon programs:
TableMap<-list(map=NULL)
for (i in 1:length(dataset$groupid)) {
for (j in 1:length(dataset$groupid)) {
if (TableAdj[i,j]==1) TableMap<-list(map=c(TableMap$map, j))
}}
# count how many people (other than i) are at i's table and add that to i-1's count
TableC<-list(C=0)
nadj<-0
for (i in 1:length(dataset$groupid)) {
nadj<-sum(TableAdj[i,])+nadj
TableC<-list(C=c(TableC$C, nadj))
}
map <- TableMap$map
C <- TableC$C
one<-rep(1, length(dataset$groupid))
numTableNeigh<-sum(as.numeric(t(TableAdj%*%one)))
# save.image("tutorial.RData")
# load("tutorial.RData")
## create data
# set constants
n_respondents <- length(dataset$groupid)
n_questions <- 5
n_responses <- 5
n_sites <- 3
Cn <- numTableNeigh
# create matrices of the pre and post outcomes.  To modify this for your own use, just edit the variable names after the $
# The model requires there be a post item for each pre item.  You can include an arbitrary number of items/questions provided
# you have at least three to identify the latent variables.
O.prex <- as.matrix(cbind(dataset$xpreO1, dataset$xpreO2, dataset$xpreO3, dataset$xpreO4, dataset$xpreO5))
O.postx <- as.matrix(cbind(dataset$xpostO1, dataset$xpostO2, dataset$xpostO3, dataset$xpostO4, dataset$xpostO5))
liberal<-dataset$liberal
conservative<-dataset$conservative
sites<-as.matrix(cbind(dataset$site2, dataset$site3))
data<-list("O.prex", "O.postx", "liberal", "conservative", "n_respondents", "n_questions",  "Cn", "C",  "map", "n_sites", "sites")
inits <- function() {
list(theta0=rnorm(n_respondents), lambda.0=rnorm(n_questions), beta.0=rnorm(n_questions),
delta.theta=rnorm(n_respondents), delta.zeta=rmvnorm(n_respondents, rep(0, n_questions), diag(n_questions)),
alpha1=rnorm(1), delta1=rnorm(1), delta3=rnorm(1), lambda.1=runif(n_questions),
beta.1=rnorm(n_questions), beta.2=rnorm(n_questions), beta.3=rmvnorm(n_sites-1, rep(0, n_questions), diag(n_questions)),
rho=rep(0.3, n_questions), tau.prex=runif(n_questions), tau.postx=runif(n_questions), tau.theta0=dunif(1))}
# Output the data and inits files to the working directory
setwd("~/../Dropbox/UCR/research/bayes/funglee/persuasion/OBOE/Replication/ResultsInPaper/Tutorial/fullmodel_examples/linear/trial2")
bugs.data(data, dir=getwd(), digits=5, data.file="data.txt")
bugs.data(inits(), dir=getwd(), digits=3, data.file="inits1.txt")
bugs.data(inits(), dir=getwd(), digits=3, data.file="inits2.txt")
bugs.data(inits(), dir=getwd(), digits=3, data.file="inits3.txt")
library(mvtnorm)
library(arm)
library(BRugs)
library(R2OpenBUGS)
library(coda)
library(car)
library(foreign)
# Change this to your working directory.  Note this path makes Dropbox work at least on a windows machine
setwd("~/../Dropbox/UCR/research/bayes/funglee/persuasion/OBOE/Replication/ResultsInPaper/Tutorial")
dataset<-read.dta(file.choose()) # read in a Stata file "tutorial_data.dta"
# create the matrix of group assignments
TableAdj=matrix(data=0, nrow=length(dataset$groupid), ncol=length(dataset$groupid))
for (i in 1:length(dataset$groupid)) {
for (j in 1:length(dataset$groupid)) {
if (i!=j) {
if (dataset$groupid[i]==dataset$groupid[j]) {
TableAdj[i,j]<-1
}}}}
# Create Vector of group mappings to read into Congdon programs:
TableMap<-list(map=NULL)
for (i in 1:length(dataset$groupid)) {
for (j in 1:length(dataset$groupid)) {
if (TableAdj[i,j]==1) TableMap<-list(map=c(TableMap$map, j))
}}
# count how many people (other than i) are at i's table and add that to i-1's count
TableC<-list(C=0)
nadj<-0
for (i in 1:length(dataset$groupid)) {
nadj<-sum(TableAdj[i,])+nadj
TableC<-list(C=c(TableC$C, nadj))
}
map <- TableMap$map
C <- TableC$C
one<-rep(1, length(dataset$groupid))
numTableNeigh<-sum(as.numeric(t(TableAdj%*%one)))
# save.image("tutorial.RData")
# load("tutorial.RData")
## create data
# set constants
n_respondents <- length(dataset$groupid)
n_questions <- 5
n_responses <- 5
n_sites <- 3
Cn <- numTableNeigh
# create matrices of the pre and post outcomes.  To modify this for your own use, just edit the variable names after the $
# The model requires there be a post item for each pre item.  You can include an arbitrary number of items/questions provided
# you have at least three to identify the latent variables.
O.prex <- as.matrix(cbind(dataset$xpreO1, dataset$xpreO2, dataset$xpreO3, dataset$xpreO4, dataset$xpreO5))
O.postx <- as.matrix(cbind(dataset$xpostO1, dataset$xpostO2, dataset$xpostO3, dataset$xpostO4, dataset$xpostO5))
liberal<-dataset$liberal
conservative<-dataset$conservative
sites<-as.matrix(cbind(dataset$site2, dataset$site3))
data<-list("O.prex", "O.postx", "liberal", "conservative", "n_respondents", "n_questions",  "Cn", "C",  "map", "n_sites", "sites")
inits <- function() {
list(theta0=rnorm(n_respondents), lambda.0=rnorm(n_questions), beta.0=rnorm(n_questions),
delta.theta=rnorm(n_respondents), delta.zeta=rmvnorm(n_respondents, rep(0, n_questions), diag(n_questions)),
alpha1=rnorm(1), delta1=rnorm(1), delta3=rnorm(1), lambda.1=runif(n_questions),
beta.1=rnorm(n_questions), beta.2=rnorm(n_questions), beta.3=rmvnorm(n_sites-1, rep(0, n_questions), diag(n_questions)),
rho=rep(0.3, n_questions), tau.prex=runif(n_questions), tau.postx=runif(n_questions), tau.theta0=dunif(1))}
# Output the data and inits files to the working directory
setwd("~/../Dropbox/UCR/research/bayes/funglee/persuasion/OBOE/Replication/ResultsInPaper/Tutorial/fullmodel_examples/linear/trial3")
bugs.data(data, dir=getwd(), digits=5, data.file="data.txt")
bugs.data(inits(), dir=getwd(), digits=3, data.file="inits1.txt")
bugs.data(inits(), dir=getwd(), digits=3, data.file="inits2.txt")
bugs.data(inits(), dir=getwd(), digits=3, data.file="inits3.txt")
